CC = gcc
OPT = -O3 -fomit-frame-pointer -march=i686
LIBS = -lpthread
TARGET = l33t_client
MISC = makefile
INCDIR = src/include
SRCDIR = src
BINDIR = bin

all: $(TARGET)

$(TARGET): $(BINDIR)/ezxml.o $(BINDIR)/parser.o $(BINDIR)/networking.o $(BINDIR)/threads.o $(BINDIR)/main.o
	$(CC) $(OPT) $(LIBS) -o $(BINDIR)/$(TARGET) $(BINDIR)/*.o 

$(BINDIR)/ezxml.o: $(SRCDIR)/ezxml/ezxml.h $(SRCDIR)/ezxml/ezxml.c
	-mkdir bin > /dev/null
	$(CC) $(OPT) $(LIBS) -c -o $(BINDIR)/ezxml.o $(SRCDIR)/ezxml/ezxml.c
	
$(BINDIR)/parser.o: $(SRCDIR)/parser.c $(INCDIR)/parser.h
	$(CC) $(OPT) -c -o $(BINDIR)/parser.o $(SRCDIR)/parser.c

$(BINDIR)/networking.o: $(SRCDIR)/networking.c $(INCDIR)/networking.h
	$(CC) $(OPT) -c -o $(BINDIR)/networking.o $(SRCDIR)/networking.c

$(BINDIR)/threads.o: $(SRCDIR)/threads.c $(INCDIR)/threads.h
	$(CC) $(OPT) -c -o $(BINDIR)/threads.o $(SRCDIR)/threads.c

$(BINDIR)/main.o: $(SRCDIR)/main.c $(INCDIR)/test.h
	$(CC) $(OPT) $(LIBS) -c -o $(BINDIR)/main.o $(SRCDIR)/main.c

$(BINDIR): 
	mkdir -p bin
    
clean:
	rm -rf $(BINDIR)/*.o $(BINDIR)/$(TARGET) $(BINDIR)
